package com.example.lettcode._202410._20241030;

import com.example.lettcode.binarytreenode.TreeNode;

import java.util.LinkedList;
import java.util.Queue;

/*
104. 二叉树的最大深度
给定一个二叉树 root ，返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1：
输入：root = [3,9,20,null,null,15,7]
输出：3

示例 2：
输入：root = [1,null,2]
输出：2
 */
public class _2_Er_cha_shu_zui_da_shen_du {

    public static void main(String[] args) {
        TreeNode treeNode = new TreeNode();
        int[] root = {3,9,20,15,7};
        TreeNode treeNode1 = treeNode.buildTreeNode(root);
        int i = maxDepth(treeNode1);
        System.out.println(i);
    }

    /*
        递归
     */
    public static int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }

        int leftHeight = maxDepth(root.left);
        int rightHeight = maxDepth(root.right);
        return Math.max(leftHeight, rightHeight) + 1;
    }
}
